package com.bfly.mall.order.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.bfly.mall.product.enums.ShippingMethodEnum;

import java.io.Serializable;

/**
 * 订单物流信息类---一个订单可能有多个物流信息
 *
 * @author 长沙商脉科技有限公司
 * @date 2020/4/17 21:59
 */
@TableName(value = "orders_express", resultMap = "OrderExpressResultMap")
public class OrderExpress implements Serializable {

    private static final long serialVersionUID = -6629119861280394997L;

    @TableId(value = "id", type = IdType.AUTO)
    private int id;

    @TableField("order_no")
    private String orderNo;

    /**
     * 物流类型
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/4/17 22:01
     * @see com.bfly.mall.product.enums.ShippingMethodEnum
     */
    @TableField("type")
    private int type;

    /**
     * 物流名称
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/4/17 22:01
     */
    @TableField("name")
    private String name;

    /**
     * 物流快递单号-当订单是虚拟订单或者门店自提的话快递单号自动生成为当前时间戳
     * 数据库唯一
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/4/19 18:33
     */
    @TableField("express_no")
    private String expressNo;

    public String getTypeName() {
        ShippingMethodEnum typeEnum = ShippingMethodEnum.getShippingMethod(getType());
        return typeEnum == null ? "" : typeEnum.getName();
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public int getType() {
        return type;
    }

    public void setType(int type) {
        this.type = type;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getExpressNo() {
        return expressNo;
    }

    public void setExpressNo(String expressNo) {
        this.expressNo = expressNo;
    }
}
